<?xml version="1.0" encoding='UTF-8'?>
<template
  __format__="1"
  name="POSIX/gcc multithreaded standalone"
  prefix="art_"
  errlogmode="tracefile.err"
  trap_on_io_err="true"
  remote_mode="false"
  force_flush="true"
  fork_enabled="false"
  multithreaded="true"
  art_start_selfinit="true"
  threading="posix"
  compiler_type="gcc"
  trace_target="tracefile.out">

  <!-- domain names have to be spaces-free -->
  <domain
    name="heap-memory"
    float_handle="true"
    handle="void*"
    includesGlobal="true"
    >
    <expr
      oper="=="
      type="void*"
      value="NULL"
    />
    <includes>sys/malloc.h</includes> 
    <tor
       __type__="allocator"
       name="malloc"
       float_arg_n1="1"
       float_arg_n2="0"
       is_handle_arg_out="true"
       handle_arg_out="0"
       cpp_alias=""
       >
       <validateDom_before></validateDom_before>
       <args
         type="void*"
         name=""
       />
       <args
         type="unsigned long"
         name="size"
       />
       <args
         type="struct malloc_type *"
         name="type"
       />
       <args
         type="int"
         name="flags"
       />
       <expr
          oper="=="
          type="void*"
          value="NULL"
       />
    </tor>
    <tor
       __type__="deallocator"
       name="free"
       float_arg_n1="0"
       float_arg_n2="0"
       is_handle_arg_out="false"
       handle_arg_out=""
       cpp_alias=""
       >
       <validateDom_before>-</validateDom_before>
       <validateDom_before>heap-memory</validateDom_before>
       <args
         type="void"
         name=""
       />
       <args
         type="void *"
         name="addr"
       />
       <args
         type="struct malloc_type *"
         name="type"
       />
       <expr
         oper=""
         type="void"
         value=""
       />

    </tor>
    <tor
      __type__"reallocator"
      name="realloc"
      float_arg_n1="2"
      float_arg_n2="0"
      is_handle_arg_out="true"
      handle_arg_out="0"
      cpp_alias=""
      >
      <validateDom_before>-</validateDom_before>
      <validateDom_before>heap-memory</validateDom_before>
      <args
        type="void*"
        name=""
      />
      <args
        type="void*"
        name="addr"
      />
      <args
        type="unsigned long"
        name="size"
      />
      <args
        type="struct malloc_type *"
        name="type"
      />
      <args
        type="int"
        name="flags"
      />
      <expr
        oper="=="
        type="void"
        value="NULL"
      />
    </tor>
    <tor
      __type__="reallocator"
      name="reallocf"
      float_arg_n1="2"
      float_arg_n2="0"
      is_handle_arg_out="true"
      handle_arg_out="0"
      cpp_alias=""
      >
      <validateDom_before>-</validateDom_before>
      <validateDom_before>heap-memory</validateDom_before>
      <args
        type="void*"
        name=""
      />
      <args
        type="void*"
        name="addr"
      />
      <args
        type="unsigned long"
        name="size"
      />
      <args
        type="struct malloc_type*"
        name="type"
      />
      <args
        type="int"
        name="flags"
      />
      <expr
        oper="=="
        type="void*"
        value="NULL"
      />
    </tor>

    <tor
	__type__="memset"
	name="memset"
	float_arg_n1="3"
	float_arg_n2="0"
	is_handle_arg_out="true"
	handle_arg_out="1"
	cpp_alias=""
	>
	<validateDom_before></validateDom_before>
	<args
	  type="void*"
          name=""
	/>
	<args
          type="void*"
          name="b"
        />
        <args
          type="int"
          name="c"
        />
        <args
          type="size_t"
          name="len"
        />
	<expr
	  oper="=="
          type="void*"
          value="NULL"
        />
      </tor>

      <tor
        __type__="memmove"
	name="memmove"
	float_arg_n1="3"
	float_arg_n2="0"
	is_handle_arg_out="true"
	handle_arg_out="1" 
	cpp_alias=""
	>
	<validateDom_before></validateDom_before>
	<args
	  type="void*"
	  name=""
	>
	<args
	  type="void*"
	  name="dst"
	>
	<args
	  type="const void*"
          name="src"
	>
	<args
	  type="size_t"
	  name="len"
	>
	<expr
	  oper="=="
	  type="void"
	  value="NULL"
	/>
      </tor>

      <tor
	__type__="memcpy"
	name="memcpy"
	float_arg_n1="3"
	float_arg_n2="0"
	is_handle_arg_out="true"
	handle_arg_out="1"
        cpp_alias=""
	<args
	  type="void*"
	  name=""
	>
	<args
	  type="void*"
	  name="dst"
	>
	<args
	  type="const void*"
	  name="src"
	>
	<args
	  type="size_t"
	  name="len"
	>
	<expr
	  oper="=="
	  type="void*"
	  value="NULL"
	/>
      </tor>  
  </domain>
</template>
